package org.fhm.zdte.client.cmd;

import org.fhm.substrate.annotation.Setup;
import org.fhm.zdte.client.config.ClientInitialConfiguration;
import org.fhm.zdte.common.pojo.Address;
import org.fhm.zdte.common.service.transmission.AbstractCmd;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ScheduledFuture;

/**
 * The abstract layer for processing command of the client side.
 *
 * @author 谭波
 * @since 2023/11/7
 */
abstract class AbstractClientCmd extends AbstractCmd {

    protected static final Map<String, Address> connectUserContainer = new ConcurrentHashMap<>();

    protected static final Map<String, Address> connectedUserContainer = new ConcurrentHashMap<>();

    protected static final Map<String, Long> timeRecordContainer = new ConcurrentHashMap<>();

    protected static final Map<String, ScheduledFuture<?>> connectTaskContainer = new ConcurrentHashMap<>();

    @Setup
    protected ClientInitialConfiguration clientInitialConfiguration;

}
